feat(web): personal/team project labels + collapse chat for shared non-owners - #6294
Conversation
…non-owners
Workspace home left rail now labels personal vs team project lists
("Personal projects" / "Team projects", 个人项目 / 团队项目) across all
locales. Opening a confirmed shared team project that the viewer did not
create defaults the chat pane to collapsed so the design is primary;
owners and personal projects keep chat open, and expanding chat stays
sticky for the visit.
PerishCode
left a comment
There was a problem hiding this comment.
The new default-collapse path has one ownership-resolution regression that can collapse chat for the project owner. The locale changes and helper truth table otherwise match the stated personal/team terminology and basic shared-project cases.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.Default-collapsed chat was latching on raw isOwner, so a catalog-confirmed owner whose collab status was still missing ownerMemberId looked like a non-owner and permanently collapsed chat. Expose isEffectiveOwner and isSharedNonOwner from useProjectCollab (catalog + session-created + status) and gate the sticky collapse path on the confirmed non-owner signal only.
PerishCode
left a comment
There was a problem hiding this comment.
@lefarcen I verified the personal/team project label updates across all 19 locales and the shared-project chat default, including the follow-up ownership fix that uses positive catalog/status evidence so owners are not incorrectly collapsed during status latency. Web typecheck and the repository guard pass, and the focused collaboration and ProjectView coverage is green. Nice work closing the earlier ownership edge case with a clear project-level signal and regression coverage.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.
Why
On the workspace-team home rail, "草稿 / 全部项目" no longer match how the product talks about personal vs team project lists. Separately, members opening someone else's shared project from 团队项目 land with the full chat pane open even though they are read-only viewers — the design should be primary by default.
What users will see
Surface area
apps/weborapps/desktop(including Electron menu bar)odsubcommand or flag, newtools-dev/tools-packflag, or newOD_*env var/api/*endpoint, new SSE event, or changed shape inpackages/contractsskills/,design-systems/,design-templates/, orcraft/entry.navDrafts,entry.navAllProjects,workspaceSwitcher.*Tooltip, plus related invite/move strings)Screenshots
N/A in this environment (copy + default focus-mode behavior). Verify on workspace-team dogfood: sidebar labels + open a teammate's shared project from 团队项目 and confirm chat starts collapsed.
Bug fix verification
Validation
pnpm --filter @open-design/web typecheckpnpm exec vitest run -c vitest.config.ts tests/components/ProjectView.shared-non-owner-chat-default.test.ts(5 passed)Notes
/drafts,/all-projects) and internal view keys are unchanged — display labels only.syncStatepastlocal_onlyand!isOwner) so owners do not flash focus mode during the status-unknown window.